10 SPEED= 255: NORMAL : NOTRACE : TEXT : HOME : GOTO 3200
20 IF I$(1) = "DUMMY ENTRY" THEN G = 0:N = 1: GOTO 110: REM MERGE SUBROUTINE
30 FOR N = 1 TO G: IF I$(0) < = I$(N) THEN 60
40 NEXT
50 IF N >G THEN 110
60 S0$ = "":SN$ = "": FOR I = 1 TO 30 - LEN(S$(0)):S0$ = S0$ +" ": NEXT :S0$ = S0$ +S$(0): FOR I = 1 TO 30 - LEN(S$(N)):SN$ = SN$ +" ": NEXT :SN$ = SN$ +S$(N)
70 IF S0$ >SN$ AND (I$(0) = I$(N)) THEN 90
80 ON (N >G) GOTO 110: GOTO 100
90 N = N +1: GOTO 60
100 FOR I = G +1 TO N STEP -1:I$(I) = I$(I -1):S$(I) = S$(I -1):DA%(I) = DA%(I -1):CO(I) = CO(I -1):CA%(I) = CA%(I -1):CV(I) = CV(I -1):RC(I) = RC(I -1):C$(I) = C$(I -1): NEXT
1800 HOME : PRINT : PRINT "PLEASE ENTER THE KEYWORD. ENTER " CHR$(34)"F" CHR$(34): PRINT "FIRST IF YOU WANT THE FIRST MATCHING": PRINT "KEYWORD TO LIST. PRESS RETURN FOR MENU"
1810 INPUT K$:LO = LEN(K$): IF K$ = "" THEN 3800
1820 FL = 0: IF K$ < >"F" THEN 1850
1830 PRINT : INPUT "ENTER THE KEYWORD: ";K$:LO = LEN(K$): IF K$ = "" THEN 3800
1840 FL = 1
1850 FOR I = 1 TO G:CS%(I) = 0: NEXT :TQ = 1: FOR I = 1 TO G: IF LEFT$(I$(I),LO) = K$ THEN CS%(TQ) = I:TQ = TQ +1
1860 IF FL AND CS%(1) THEN TQ = 2:I = G
1870 NEXT I: IF TQ = 2 THEN N = CS%(1): GOTO 1920
1880 IF TQ = 1 THEN PRINT : PRINT CHR$(7)"KEYWORD NOT FOUND. TRY AGAIN.": GOTO 1810
1890 POKE 34,0: HOME :Z$ = K$ +" WAS FOUND IN:": HTAB 20 -( LEN(Z$)/2): PRINT Z$: PRINT : PRINT "CODE ITEM//SERIAL NUMBER": POKE 34,4: PRINT
1900 TI = 5:TL = 40: FOR I = 1 TO TQ -1:I$(0) = I$(CS%(I)) +"//" +S$(CS%(I)):N = 0: PRINT CS%(I);: GOSUB 300: PRINT "": IF PEEK(37) > = 21 THEN GOSUB 3260: HOME
1910 NEXT : PRINT : INPUT "SELECT YOUR CHOICE BY CODE NO. ";Z$: POKE 34,0:N = VAL(Z$): IF N <1 OR N >G THEN 3800
1920 POKE 34,0: HOME :TI = 7:TL = 39: PRINT "ITEM: ";: GOSUB 300: PRINT : PRINT : PRINT "SERIAL NUMBER: ";S$(N);: IF S$(N) = "" THEN PRINT "NONE";
2075 HOME : FOR I = 1 TO 9: PRINT I;: HTAB 4: PRINT CA$(I): NEXT : PRINT : PRINT "IS CATEGORY "CA%(N)" CORRECT? ";: GET Z$: PRINT Z$: IF Z$ < >"N" THEN 2085
2080 PRINT : INPUT "ENTER THE CORRECT CATEGORY ";CA%(N):CM = 1: IF CA%(N) <1 OR CA%(N) >9 THEN 2080
2085 HOME : PRINT "CURRENT VALUE ";: IF CV(N) <0 THEN PRINT "ESTIMATED";: GOTO 2095
2090 PRINT "$"CV(N);
2095 PRINT ". CORRECT? ";: GET Z$: PRINT Z$: PRINT : IF Z$ < >"N" THEN 2105
2100 PRINT "ENTER THE CURRENT VALUE OR PRESS RETURN": INPUT "TO HAVE PIP ESTIMATE. $";Z$: PRINT :CV(N) = VAL(Z$):CM = 1
2105 PRINT "REPLACEMENT COST ";: IF RC(N) <0 THEN PRINT "ESTIMATED";: GOTO 2115
2110 PRINT "$"RC(N);
2115 PRINT ". CORRECT? ";: GET Z$: PRINT Z$: PRINT : IF Z$ < >"N" THEN 2125
2120 INPUT "ENTER THE REPLACEMENT COST OR PRESS RETURN TO HAVE PIP ESTIMATE. $";Z$: PRINT :RC(N) = VAL(Z$):CM = 1
2125 PRINT C$(N);: IF C$(N) = "" THEN PRINT "<NO COMMENT ENTERED>"
2130 PRINT : PRINT : PRINT "COMMENT CORRECT? ";: GET Z$: PRINT Z$: IF Z$ < >"N" THEN 2140
2135 PRINT : PRINT "ENTER THE CORRECT COMMENT PRECEEDED BY": INPUT "A QUOTE: ";C$(N):CM = 1
2210 C1 = 0:R1 = 0:V1 = 0: FOR I = 1 TO 9: PRINT CA$(I);:C = 0:CV = 0:RC = 0: FOR J = 1 TO G: IF CA%(J) = I THEN C = C +CO(J):CV = CV + ABS(CV(J)):RC = RC + ABS(RC(J))
2400 HOME : PRINT " THIS OPTION REQUIRES A 40 OR 80 COLUMNPRINTER. TO PRINT, PRESS 'P'. IF YOU DO NOT WANT TO PRINT, PRESS 'R' TO RE-"
2410 PRINT "TURN TO THE MENU, OR PRESS 'S' TO LIST ON THE SCREEN. PRESSING 'P' WITHOUT A PRINTER TURNED ON AT PR#1 WILL CAUSE"
2420 PRINT "THE PROGRAM TO HANG. PLEASE ENTER YOUR CHOICE: ";: POKE -16368,0: GET Z$: PRINT Z$: IF Z$ < >"S" AND Z$ < >"P" THEN 3800
2430 IF Z$ = "S" THEN SPEED= 175:W = 40: GOTO 2500
2440 PRINT : PRINT "PLEASE ENTER THE PRINTING WIDTH (40 OR": INPUT "80 COLUMN) ";W: PRINT : IF W < >40 AND W < >80 THEN 2440
2450 PRINT "ENTER THE MONTH AS JANUARY, FEBRUARY,": INPUT "MARCH, ETC ";M$
2460 PRINT : INPUT "ENTER TODAY'S DATE ";D$
2470 HOME : PRINT CHR$(4)"PR#1": FOR I = 1 TO 8: PRINT : NEXT
2480 HTAB (9 +((W -40)/2)): PRINT "PROPERTY INVENTORY OF": PRINT :TL = (W - LEN(ME$))/2: HTAB TL: PRINT ME$: PRINT :Z$ = "CURRENT AS OF " +M$ +" " +D$ +", " + STR$(Y%):TL = (W - LEN(Z$))/2
2490 HTAB TL: PRINT Z$: PRINT : PRINT : PRINT
2500 HOME : FOR I = 1 TO 6:CS(I) = 0: NEXT : FOR I = 1 TO 9
2510 PRINT : PRINT : PRINT :TL = (W - LEN(CA$(I)))/2: FOR K = 1 TO TL -1: PRINT "*";: NEXT : PRINT CA$(I);: FOR L = K + LEN(CA$(I)) TO W: PRINT "*";: NEXT : PRINT : PRINT : PRINT
2520 FOR N = 1 TO G: IF CA%(N) < >I THEN 2590
2530 TI = 1:TL = W -1: GOSUB 300: PRINT : PRINT " SERIAL NUMBER: ";: PRINT S$(N);: IF S$(N) = "" THEN PRINT "NONE";
3237 DIM I$(DI),S$(DI),DA%(DI),CO(DI),CA%(DI),CV(DI),RC(DI),C$(DI),CS%(DI)
3240 FOR I = 1 TO G: INPUT I$(I),S$(I),DA%(I),CO(I),CA%(I),CV(I),RC(I),C$(I): NEXT : PRINT CHR$(4)"CLOSE PIP DATA"
3250 HOME : PRINT "DATA WAS LAST MODIFIED ON": PRINT MM$" "DM$", "YM%: PRINT : PRINT "INFLATION RATE USED: "IM"%": PRINT "DEFLATION RATE USED: "DM"%"
3255 PRINT : PRINT "DO YOU WANT TO RECALCULATE RATES? ";: POKE -16368,0: GET Z$: PRINT Z$: GOTO 3270
3260 POKE -16368,0: VTAB 24: PRINT " PRESS ANY KEY TO CONTINUE ";: GET Z$: PRINT Z$: RETURN
3270 PRINT : INPUT "PLEASE ENTER THE YEAR ";Y%:IL = .1:DL = .1: IF Y% <1000 THEN Y% = Y% +1900
3280 ME$ = "YOUR NAME GOES HERE"
3290 PRINT : IF Y% < >YM% THEN PRINT "THIS IS A DIFFERENT YEAR. SHALL I RECALCULATE THE CURRENT VALUES AND RE- PLACEMENT COSTS FOR YOU? ";: GET Z$: PRINT Z$: IF Z$ = "Y" THEN CM = 1
3330 IF Z$ < >"Y" THEN IL = IM/100:DL = DM/100:DR = 1 -DL:AR = 1 +IL:N1 = 1:N2 = G: GOSUB 3530:YM% = Y%: GOTO 3800
3340 CM = 1: PRINT : PRINT "IS A 10% APPRECIATION/DEPRECIATION RATEO.K.? ";: POKE -16368,0: GET Z$: PRINT Z$: IF Z$ = "Y" THEN 3450
3350 PRINT : PRINT "PLEASE ENTER RATES AS PERCENTAGES, E.G. 8, 8.5, 9,ETC.": PRINT : INPUT "APPRECIATION RATE? ";IL: PRINT : INPUT "DEPRECIATION RATE? ";DL: PRINT :IL = IL *.01:DL = DL *.01
3450 PRINT : PRINT : PRINT "I AM NOW COMPUTING CURRENT VALUE AND CURRENT REPLACEMENT COSTS WHERE YOU HAVE NOT SPECIFIED THEM.":DR = 1 -DL:AR = 1 +IL:N1 = 1:N2 = G: GOSUB 3460: GOTO 3800
3460 FOR I = N1 TO N2:Y1 = Y% -DA%(I): IF CV(I) >0 THEN 3490
3470 IF Y1 = 0 THEN CV(I) = CO(I) * -1: GOTO 3490
3480 CV(I) = CO(I) *DR ^Y1 * -1
3490 IF RC(I) >0 THEN 3520
3500 IF Y1 = 0 THEN RC(I) = CO(I) * -1: GOTO 3520
3510 RC(I) = CO(I) *AR ^Y1 * -1
3520 NEXT
3530 FOR I = N1 TO N2: IF CO(I) >HQ THEN HQ = CO(I)
3540 IF ABS(RC(I)) >HR THEN HR = ABS(RC(I))
3550 IF ABS(CV(I)) >HV THEN HV = ABS(CV(I))
3560 IF DA%(I) >HY THEN HY = DA%(I)
3570 NEXT :RC = 0: RETURN
3800 HOME : VTAB 4: INVERSE : HTAB 16: PRINT "OPTIONS": NORMAL : VTAB 8: FOR I = 1 TO G:CS%(I) = 0: NEXT : PRINT "1. LIST ALPHABETICALLY BY CATEGORY"
3810 PRINT "2. LIST BY DECREASING ACQUISITION COST": PRINT "3. LIST BY DECREASING REPLACEMENT COST": PRINT "4. LIST BY DECREASING CURRENT VALUE"
3820 PRINT "5. LIST BY YEAR OF PURCHASE": PRINT "6. DISPLAY FULL DATA ON ANY ITEM": PRINT "7. DISPLAY CURRENT STATUS": PRINT "8. PRINT CURRENT STATUS": PRINT "9. ";: FLASH : PRINT "EXIT": NORMAL
3825 PRINT "0. ADD NEW ENTRY": PRINT : PRINT : HTAB 9: PRINT "THERE ARE "G" ENTRIES"
3830 VTAB 23: HTAB 7: PRINT "PLEASE SELECT YOUR OPTION ";: POKE -16368,0: GET Z$: PRINT Z$:CH = VAL(Z$)
3840 ON CH GOTO 800,1000,1200,1400,1600,1800,2200,2400,3000
4000 HOME : IF G = DI THEN PRINT CHR$(7)"ALL ARRAYS ARE FULL YOU MUST EXIT THE": PRINT "PROGRAM, THEN RUN IT AGAIN TO ADD MORE": PRINT "DATA.": GOSUB 3260: GOTO 3800
4010 INVERSE : PRINT "ADD NEW ENTRY";: NORMAL : PRINT " PRECEDE NAME, SERIAL #": PRINT "& COMMENT WITH A QUOTE MARK (" CHR$(34)"). PRESS": PRINT "RETURN FOR MENU."
4020 PRINT : INPUT "NAME? ";I$(0): IF I$(0) = "" THEN 3800
4030 CM = 1: PRINT : INPUT "ENTER THE SERIAL NUMBER, OR PRESS RETURNIF NONE: ";S$(0): PRINT
4040 INPUT "YEAR ACQUIRED? ";DA%(0): IF DA%(0) <1100 THEN DA%(0) = DA%(0) +1900
4050 PRINT : INPUT "COST OF ITEM? ";CO(0)
4060 HOME : FOR I = 1 TO 9: PRINT I;: HTAB 4: PRINT CA$(I): NEXT : PRINT : PRINT : INPUT "CATEGORY? ";CA%(0): IF CA%(0) <1 OR CA%(0) >9 THEN 4060
4070 HOME : PRINT "ENTER CURRENT VALUE IF KNOWN, OR PRESS": INPUT "RETURN FOR ESTIMATE: $";Z$:CV(0) = VAL(Z$)
4080 PRINT : PRINT "ENTER REPLACEMENT COST IF KNOWN, OR": INPUT "PRESS RETURN FOR ESTIMATE: $";Z$:RC(0) = VAL(Z$)
4090 PRINT : PRINT "ENTER ANY COMMENTS, PRECEEDED BY A QUOTE. PRESS RETURN IF NONE": PRINT : INPUT C$(0):N1 = 0:N2 = 0: GOSUB 3460
4200 POKE 216,0: HOME : PRINT "THERE IS NO RECOVERABLE DATA ON THIS": INPUT "DISK. IS THIS THE FIRST TIME YOU HAVE RUN PIP? ";Z$: IF Z$ = "Y" THEN 4220
4210 PRINT : PRINT "PLEASE INSURE THE FILE 'PIP DATA' IS ON THIS DISK. THERE IS A READ ERROR ON THEFIRST ENTRY.": END
4220 PRINT : PRINT "I WILL CREATE A DUMMY ENTRY WHICH WILL BE REPLACED BY YOUR FIRST VALID ENTRY."